Abstrakta datumtipo estas datumtipo difinita nur per la aro da operacioj (operacisimboloj aŭ funkcinomoj) aplikeblaj al ties objektoj, sen indiko pri la interna prezento de iliaj valoroj kaj sen programkodo de la operacioj. La epiteto abstrakta esprimas ĝuste tion, ke la interna strukturo de la objektoj de abstrakta datumtipo estas kaŝita de la ĝin uzanta programisto.
Abstrakta datumtipo difinas la sortimenton da bazaj funkcioj por manipuli ĝiajn objektojn en ajna eventuala realigo — kian oni povas nomi konkreta datumtipo aŭ datumstrukturo.
En programado abstraktajn datumtipojn oni kutime prezentas per interfaco kaŝanta la konkretajn datumstrukturojn. La programistoj manipulas la objektojn de la abstrakta datumtipo sole nur per tiuj interfacaj funkcion, kio ebligas ŝanĝi la konkretajn datumstrukturojn kaj verki abstraktajn algoritmojn por diversaj datumstrukruroj (ekz-e ordigon por abstraktaj tabeloj, surbaze de abstrakta kompara funkcio). Tio respondas al enkapsuligo en la objektema programado.